<?php
namespace app\admin\controller;
use think\Validate;
use think\Loader;
use think\Controller;
//use app\admin\controller\Base;
use app\admin\model\Admin as AdminModel; //改名，否则会有两个Admin类，报错

class Admin extends Controller{
	/*public function _initialize(){ //在类里执行任何方法之前都要执行这个方法
      if(!session('username')){
      	$this->error('非法进入，请先登录！','Login/index');
      }
	}*/

	public function lst(){
		$list=AdminModel::paginate(3); //连同分页带数据分配,使用这个方法需要创建模型
		$this->assign('list',$list);
		return $this->fetch();
	}
	public function add(){
		if(request()->isPost()){
			$data=[
			   'username'=>input('username'),
			   'password'=>md5(input('password')),
			   'role'=>input('role'),
			   'time'=>time(),
			];

			$validate = Loader::validate('admin');
			if(!$validate->scene('add')->check($data)){  //应用验证
			   $this->error($validate->getError());
			}

			if(db('admin')->insert($data)){ //助手函数添加
				return $this->success('添加'.$data['role'].'成功！','lst',1);
			}else{
				return $this->error('添加'.$data['role'].'失败！');
			}
			return;
		}
		return $this->fetch();
	}
	public function edit(){
		$id=input('id');
		$admins=db('admin')->find($id);
		$this->assign('admins',$admins);
		if(request()->isPost()){
			$data=[
			  'id'=>input('id'),
			  'username'=>input('username'),
			  'role'=>input('role'),
			];
			if(input('password')){  //如果没有填写密码就用原密码，如果写了就用新的
			  $data['password']=md5(input('password'));
			   }else{
			   	$data['password']=$admins['password'];
			   }

            $validate = Loader::validate('admin');
			if(!$validate->scene('edit')->check($data)){  //应用验证
			   $this->error($validate->getError());
			}

			if(db('admin')->update($data)){
				$this->success('修改成功','lst',1);
			}else{
				$this->error('修改失败！');
			}
			return;
		}
		return $this->fetch();
	}
	public function del(){
		$id=input('id');
		if($id!=1){
            if($del=db('admin')->where('id',$id)->delete()){
            	$this->success('删除管理员成功','lst',1);
            }else{
            	$this->error('删除管理员失败！');
            }
		}else{
			$this->error('初始管理员不能删除！');
		}
	}
}